597C - Subsequences - CodeForces Solution


data structures dp *1900

Please click on ads to support us..

C++ Code:

/*************************************************************************
    > File Name: e.cpp
    > Author: Beans
    > Mail: [email protected] 
    > Created Time: 2023/5/22 21:09:48
 ************************************************************************/
#include <iostream>
#include <algorithm>
#define int long long
#define endl '\n'

using namespace std;

int n, f[300030][15];
int l;

int lowbit(int x){
	return x & -x;
}

void add(int x, int y){
	while(x <= n){
		f[x][l] += y;
		x = x + lowbit(x);
	}
}

int query(int x){
	int ans = 0;
	while(x > 0){
		ans += f[x][l];
		x = x - lowbit(x);
	}
	return ans;
}

int k;
signed main(){
	cin >> n >> k;
	k ++ ;
	for(int i = 1; i <= n; i ++ ){
		int x;
		cin >> x;
		for(int j = 1; j <= k; j ++ ){
			int ans;
			l = j - 1;
			if(l == 0)	ans = 1;
			else	ans = query(x - 1);
			l ++ ;
			add(x, ans);
		}
	}
	l = k;
	cout << query(n) << endl;
}

   	 	  		    			 	 		 	   	 		


Comments

Submit
0 Comments
More Questions

1302. Deepest Leaves Sum
1209. Remove All Adjacent Duplicates in String II
994. Rotting Oranges
983. Minimum Cost For Tickets
973. K Closest Points to Origin
969. Pancake Sorting
967. Numbers With Same Consecutive Differences
957. Prison Cells After N Days
946. Validate Stack Sequences
921. Minimum Add to Make Parentheses Valid
881. Boats to Save People
497. Random Point in Non-overlapping Rectangles
528. Random Pick with Weight
470. Implement Rand10() Using Rand7()
866. Prime Palindrome
1516A - Tit for Tat
622. Design Circular Queue
814. Binary Tree Pruning
791. Custom Sort String
787. Cheapest Flights Within K Stops
779. K-th Symbol in Grammar
701. Insert into a Binary Search Tree
429. N-ary Tree Level Order Traversal
739. Daily Temperatures
647. Palindromic Substrings
583. Delete Operation for Two Strings
518. Coin Change 2
516. Longest Palindromic Subsequence
468. Validate IP Address
450. Delete Node in a BST